home *** CD-ROM | disk | FTP | other *** search
- import java.util.Date;
- import java.util.Random;
- import javax.microedition.lcdui.Canvas;
- import javax.microedition.lcdui.Font;
- import javax.microedition.lcdui.Graphics;
- import javax.microedition.lcdui.Image;
- import javax.microedition.midlet.MIDlet;
-
- public class KnightCanvas extends Canvas implements Runnable {
- // $FF: renamed from: q int
- int field_0;
- // $FF: renamed from: char int
- int field_1;
- // $FF: renamed from: g int
- static final int field_2 = 12;
- // $FF: renamed from: void int
- static final int field_3 = 10;
- // $FF: renamed from: goto int
- static final int field_4 = -1;
- // $FF: renamed from: else int
- static final int field_5 = 1;
- // $FF: renamed from: b int
- static final int field_6 = 2;
- // $FF: renamed from: m int
- static final int field_7 = 99999;
- // $FF: renamed from: p int
- static final int field_8 = 0;
- // $FF: renamed from: l int
- static final int field_9 = 1;
- // $FF: renamed from: a int
- static final int field_10 = 2;
- // $FF: renamed from: null int
- static final int field_11 = 3;
- // $FF: renamed from: n int
- static final int field_12 = 4;
- // $FF: renamed from: j int
- static final int field_13 = 5;
- // $FF: renamed from: i javax.microedition.midlet.MIDlet
- MIDlet field_14;
- // $FF: renamed from: k javax.microedition.lcdui.Image
- Image field_15;
- // $FF: renamed from: d javax.microedition.lcdui.Image
- Image field_16;
- // $FF: renamed from: int javax.microedition.lcdui.Image
- Image field_17;
- // $FF: renamed from: for int
- int field_18;
- // $FF: renamed from: new int
- int field_19;
- // $FF: renamed from: e boolean[][]
- boolean[][] field_20;
- // $FF: renamed from: h int
- int field_21;
- public Thread thread;
- // $FF: renamed from: f javax.microedition.lcdui.Graphics
- Graphics field_22;
- // $FF: renamed from: case int
- int field_23;
- // $FF: renamed from: try int
- int field_24;
- // $FF: renamed from: do int
- int field_25;
- // $FF: renamed from: c int
- int field_26;
- // $FF: renamed from: long int
- int field_27;
- // $FF: renamed from: o java.util.Random
- Random field_28;
- public boolean bGameStarted;
- public boolean bAppThread;
- // $FF: renamed from: if a
- KnightCanvas$a field_29 = new KnightCanvas$a(this);
- // $FF: renamed from: byte boolean
- boolean field_30;
-
- public KnightCanvas(MIDlet var1) {
- try {
- this.field_14 = var1;
- this.bGameStarted = false;
- this.field_28 = new Random((new Date()).getTime());
- this.field_15 = Image.createImage(((Canvas)this).getWidth(), ((Canvas)this).getHeight());
- this.field_22 = this.field_15.getGraphics();
- this.field_16 = Image.createImage("/res/knight.png");
- this.field_17 = Image.createImage("/res/softex_bw.png");
- this.field_19 = (((Canvas)this).getWidth() - 1) / 12;
- this.field_18 = (((Canvas)this).getHeight() - Font.getDefaultFont().getHeight() - 1) / 12;
- this.field_20 = new boolean[this.field_18][this.field_19];
- if (this.field_19 < 3 || this.field_18 < 3) {
- throw new Exception("Canvas Height/Width not supported");
- }
- } catch (Exception var3) {
- }
-
- }
-
- public void newGame(int var1, int var2, boolean var3) {
- try {
- this.bGameStarted = false;
- if (var1 < 12 || var2 > 10) {
- throw new Exception("Params out of range");
- }
-
- this.field_1 = var1;
- this.field_0 = var2;
- this.field_19 = (((Canvas)this).getWidth() - 1) / this.field_1;
- this.field_18 = (((Canvas)this).getHeight() - Font.getDefaultFont().getHeight() - 1) / this.field_1;
- if (this.field_19 < 3 || this.field_18 < 3) {
- throw new Exception("Canvas Height/Width not supported");
- }
-
- for(int var4 = 0; var4 < this.field_18; ++var4) {
- for(int var5 = 0; var5 < this.field_19; ++var5) {
- this.field_20[var4][var5] = false;
- }
- }
-
- this.field_24 = Math.abs(this.field_28.nextInt()) % this.field_18;
- this.field_25 = Math.abs(this.field_28.nextInt()) % this.field_19;
- this.field_23 = 0;
- this.field_20[this.field_24][this.field_25] = true;
- this.field_21 = 0;
- this.bGameStarted = true;
- } catch (Exception var6) {
- }
-
- }
-
- public void run() {
- short var4;
- try {
- for(int var5 = -1; this.bAppThread; Thread.sleep((long)var4)) {
- if (!this.bGameStarted) {
- var4 = 150;
- } else {
- var4 = 100;
- var5 = this.field_21;
- this.field_22.setColor(-1);
- this.field_22.fillRect(0, 0, this.field_15.getWidth(), this.field_15.getHeight());
- this.field_22.setColor(0);
-
- for(int var1 = 0; var1 < this.field_18; ++var1) {
- for(int var2 = 0; var2 < this.field_19; ++var2) {
- this.field_22.drawRect(var2 * this.field_1, var1 * this.field_1, this.field_1, this.field_1);
- if (this.field_20[var1][var2] && (var1 != this.field_24 || var2 != this.field_25)) {
- this.field_22.drawLine(var2 * this.field_1, var1 * this.field_1, var2 * this.field_1 + this.field_1, var1 * this.field_1 + this.field_1);
- this.field_22.drawLine(var2 * this.field_1 + this.field_1, var1 * this.field_1, var2 * this.field_1, var1 * this.field_1 + this.field_1);
- }
- }
- }
-
- int var7 = this.field_1 / 2;
- this.field_22.drawImage(this.field_16, this.field_25 * this.field_1 + var7, this.field_24 * this.field_1 + var7, 3);
- switch (var5) {
- case 0:
- var4 = 50;
- this.field_22.drawString("User Turn", 0, ((Canvas)this).getHeight() - 1, 36);
- if (!this.method_5(this.field_22)) {
- this.field_21 = 4;
- }
- break;
- case 1:
- this.field_22.drawString("User Moves..", 0, ((Canvas)this).getHeight() - 1, 36);
- if (!this.method_0()) {
- this.field_20[this.field_24][this.field_25] = true;
- if (!this.method_4()) {
- this.field_21 = 5;
- } else {
- this.field_21 = 2;
- }
- }
- break;
- case 2:
- this.field_22.drawString("CPU Thinks..", 0, ((Canvas)this).getHeight() - 1, 36);
- break;
- case 3:
- var4 = 150;
- this.field_22.drawString("CPU Moves..", 0, ((Canvas)this).getHeight() - 1, 36);
- if (!this.method_0()) {
- this.field_20[this.field_24][this.field_25] = true;
- if (!this.method_4()) {
- this.field_21 = 4;
- } else {
- this.field_21 = 0;
- }
- }
- break;
- default:
- this.field_22.drawString(this.field_21 == 4 ? "CPU Won" : "User Won", 0, ((Canvas)this).getHeight() - 1, 36);
- }
- }
-
- ((Canvas)this).repaint();
- ((Canvas)this).serviceRepaints();
- if (this.bGameStarted && var5 == 2) {
- this.method_7();
- }
- }
- } catch (Exception var6) {
- }
-
- }
-
- public void paint(Graphics var1) {
- try {
- if (this.bGameStarted) {
- var1.drawImage(this.field_15, 0, 0, 20);
- } else {
- var1.setColor(-1);
- var1.fillRect(0, 0, ((Canvas)this).getWidth(), ((Canvas)this).getHeight());
- var1.setColor(0);
- var1.setFont(Font.getFont(0, 1, 16));
- var1.drawString("K N I G H T", ((Canvas)this).getWidth() / 2, 0, 17);
- var1.setFont(Font.getDefaultFont());
- var1.drawImage(this.field_17, ((Canvas)this).getWidth() / 2, ((Canvas)this).getHeight() / 2, 3);
- }
- } catch (Exception var3) {
- }
-
- }
-
- // $FF: renamed from: do () boolean
- boolean method_0() {
- boolean var1 = true;
- if (this.field_24 < this.field_26) {
- ++this.field_24;
- } else if (this.field_24 > this.field_26) {
- --this.field_24;
- } else if (this.field_25 < this.field_27) {
- ++this.field_25;
- } else if (this.field_25 > this.field_27) {
- --this.field_25;
- } else {
- var1 = false;
- }
-
- return var1;
- }
-
- // $FF: renamed from: do (int, int) int
- int method_1(int var1, int var2) {
- int var3 = var2 + 2;
- if (var1 < 2) {
- var3 = var2 - 2;
- } else if (var1 != 2 && var1 != 7) {
- if (var1 == 3 || var1 == 6) {
- var3 = var2 + 1;
- }
- } else {
- var3 = var2 - 1;
- }
-
- return var3;
- }
-
- // $FF: renamed from: if (int, int) int
- int method_2(int var1, int var2) {
- int var3 = var2 - 2;
- if (var1 != 1 && var1 != 4) {
- if (var1 != 2 && var1 != 3) {
- if (var1 == 0 || var1 == 5) {
- var3 = var2 - 1;
- }
- } else {
- var3 = var2 + 2;
- }
- } else {
- var3 = var2 + 1;
- }
-
- return var3;
- }
-
- // $FF: renamed from: a (int, int) boolean
- boolean method_3(int var1, int var2) {
- return var1 >= 0 && var1 < this.field_18 && var2 >= 0 && var2 < this.field_19 && !this.field_20[var1][var2];
- }
-
- // $FF: renamed from: if () boolean
- boolean method_4() {
- return this.method_5((Graphics)null);
- }
-
- // $FF: renamed from: a (javax.microedition.lcdui.Graphics) boolean
- boolean method_5(Graphics var1) {
- int var2 = -1;
- int var3 = -1;
-
- int var4;
- for(var4 = 0; var4 < 8; ++var4) {
- var2 = this.method_1(this.field_23, this.field_24);
- var3 = this.method_2(this.field_23, this.field_25);
- if (this.method_3(var2, var3)) {
- if (var1 != null) {
- var1.drawRect(var3 * this.field_1 + 2, var2 * this.field_1 + 2, this.field_1 - 4, this.field_1 - 4);
- }
- break;
- }
-
- this.field_23 = (this.field_23 + 1) % 8;
- }
-
- return var4 < 8;
- }
-
- public void keyPressed(int var1) {
- this.method_6(var1);
- }
-
- // $FF: renamed from: a (int) void
- void method_6(int var1) {
- if (this.bAppThread && this.bGameStarted && this.field_21 == 0) {
- int var2 = ((Canvas)this).getGameAction(var1);
- switch (var2) {
- case 8:
- int var3 = this.method_1(this.field_23, this.field_24);
- int var4 = this.method_2(this.field_23, this.field_25);
- if (this.method_3(var3, var4)) {
- this.field_26 = var3;
- this.field_27 = var4;
- this.field_21 = 1;
- }
- break;
- default:
- this.field_23 = (this.field_23 + 1) % 8;
- }
-
- }
- }
-
- // $FF: renamed from: a () void
- void method_7() throws Exception {
- if (this.field_28.nextInt() % 2 == 0) {
- this.field_30 = true;
- } else {
- this.field_30 = false;
- }
-
- this.method_8(1, this.field_24, this.field_25);
- if (!this.method_3(this.field_26, this.field_27)) {
- throw new Exception("Logical Error: Invalid new position for CPU - (" + this.field_26 + "," + this.field_27 + ")");
- } else {
- this.field_21 = 3;
- }
- }
-
- // $FF: renamed from: a (int, int, int) void
- void method_8(int var1, int var2, int var3) {
- int var4 = 0;
- int var5 = 0;
- int var6 = 0;
- if (var1 <= this.field_0) {
- boolean var9 = false;
- if (var1 % 2 == 0) {
- var4 = 99999;
- } else {
- var4 = -99999;
- }
-
- var6 = -99999;
-
- for(int var10 = 0; var10 < 8; ++var10) {
- int var7 = this.method_1(var10, var2);
- int var8 = this.method_2(var10, var3);
- if (this.method_3(var7, var8)) {
- var9 = true;
- this.field_20[var7][var8] = true;
- this.method_8(var1 + 1, var7, var8);
- var5 += this.field_29.a;
- if (var1 % 2 == 0) {
- if (this.field_29.a < var4 || this.field_29.a == var4 && this.field_29.if > var6) {
- var4 = this.field_29.a;
- var6 = this.field_29.if;
- }
- } else if (this.field_29.a > var4 || this.field_29.a == var4 && this.field_29.if > var6) {
- var4 = this.field_29.a;
- var6 = this.field_29.if;
- if (var1 == 1) {
- this.field_26 = var7;
- this.field_27 = var8;
- }
- }
-
- this.field_20[var7][var8] = false;
- }
- }
-
- if (!var9) {
- var4 = (var1 + 1) / 2;
- var4 = this.field_0 + 1 - var4;
- if (var1 % 2 != 0) {
- var4 *= -1;
- }
- }
- }
-
- this.field_29.a = var4;
- this.field_29.if = var5;
- }
- }
-